/* **********************************************************
 * Copyright (c) 2011-2025 Google, Inc.  All rights reserved.
 * **********************************************************/

/* Dr. Memory: the memory debugger
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation;
 * version 2.1 of the License, and no later version.

 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Library General Public License for more details.

 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */

/* Need this defined and to the latest to get the latest defines and types */
#define _WIN32_WINNT 0x0601 /* == _WIN32_WINNT_WIN7 */
#define WINVER _WIN32_WINNT

#include "dr_api.h"
#include "drsyscall.h"
#include "drsyscall_os.h"
#include "drsyscall_windows.h"
#include "table_defines.h"
#include <stddef.h> /* offsetof */

#include "../drmf/wininc/ndk_extypes.h" /* required by ntuser.h */
#include "../drmf/wininc/ntuser.h"
#include "../drmf/wininc/ntuser_win8.h"
#include "../drmf/wininc/ntuser_ex.h"

/***************************************************************************/
/* System calls with wrappers in user32.dll.
 * Not all wrappers are exported: xref i#388.
 *
 * Initially obtained via mksystable.pl on ntuser.h.
 * That version was checked in separately to track manual changes.
 *
 * When adding new entries, use the NtUser prefix.
 * When we try to find the wrapper via symbol lookup we try with
 * and without the prefix.
 *
 * Unresolved issues are marked w/ XXX in the table.
 */

/* XXX i#1089: fill in info on all the inlined args for all of
 * syscalls in this file.
 */

/* XXX i#1093: figure out the failure codes for all the int and uint return values */

extern drsys_sysnum_t sysnum_UserSystemParametersInfo;
extern drsys_sysnum_t sysnum_UserMenuInfo;
extern drsys_sysnum_t sysnum_UserMenuItemInfo;
extern drsys_sysnum_t sysnum_UserGetAltTabInfo;
extern drsys_sysnum_t sysnum_UserGetRawInputBuffer;
extern drsys_sysnum_t sysnum_UserGetRawInputData;
extern drsys_sysnum_t sysnum_UserGetRawInputDeviceInfo;
extern drsys_sysnum_t sysnum_UserTrackMouseEvent;
extern drsys_sysnum_t sysnum_UserLoadKeyboardLayoutEx;
extern drsys_sysnum_t sysnum_UserCreateWindowStation;
extern drsys_sysnum_t sysnum_UserMessageCall;
extern drsys_sysnum_t sysnum_UserCreateAcceleratorTable;
extern drsys_sysnum_t sysnum_UserCopyAcceleratorTable;
extern drsys_sysnum_t sysnum_UserSetScrollInfo;

extern syscall_info_t syscall_UserCallNoParam_info[];
extern syscall_info_t syscall_UserCallOneParam_info[];
extern syscall_info_t syscall_UserCallTwoParam_info[];
extern syscall_info_t syscall_UserCallHwnd_info[];
extern syscall_info_t syscall_UserCallHwndLock_info[];
extern syscall_info_t syscall_UserCallHwndOpt_info[];
extern syscall_info_t syscall_UserCallHwndParam_info[];
extern syscall_info_t syscall_UserCallHwndParamLock_info[];

syscall_info_t syscall_user32_info[] = {
    { { 0, 0 },
      "NtUserActivateKeyboardLayout",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserAlterWindowStyle",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserAssociateInputContext",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserAttachThreadInput",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserBeginPaint",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(PAINTSTRUCT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserBitBltSysBmp",
      OK,
      SYSARG_TYPE_BOOL32,
      8,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 6, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 7, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserBlockInput",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserBuildHimcList",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -1, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(HIMC) },
          { 3, sizeof(UINT), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, WIN7 },
      "NtUserBuildHwndList",
      OK,
      RNTST,
      7,
      {
          { 0, sizeof(HDESK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOLEAN), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 3, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, -6, WI | SYSARG_SIZE_IN_ELEMENTS, sizeof(HWND) },
          { 6, sizeof(ULONG), R | W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { WIN8, 0 },
      "NtUserBuildHwndList",
      OK,
      RNTST,
      8,
      {
          { 0, sizeof(HDESK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOLEAN), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 3, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          /* i#1153: size of buffer seems to be a separate inline param inserted
           * at 5th position.
           */
          { 5, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, -5, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(HWND) },
          { 7, sizeof(ULONG), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserBuildMenuItemList",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, -2, W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserBuildNameList",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(HWINSTA), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -1, W | HT, DRSYS_TYPE_STRUCT },
          { 2, -3, WI | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(ULONG), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserBuildPropList",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -1, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(USER_PROP_LIST_ENTRY) },
          { 2, -3, WI | SYSARG_SIZE_IN_ELEMENTS, sizeof(USER_PROP_LIST_ENTRY) },
          { 3, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCalcMenuBar",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* i#389: NtUserCall* take in a code and perform a variety of tasks */
    { { 0, 0 },
      "NtUserCallHwnd",
      OK | SYSINFO_SECONDARY_TABLE,
      SYSARG_TYPE_UINT32,
      2,
      {
          {
              1,
          } /* code is param #1 */
      },
      (drsys_sysnum_t *)syscall_UserCallHwnd_info },
    { { 0, 0 },
      "NtUserCallHwndLock",
      OK | SYSINFO_SECONDARY_TABLE,
      SYSARG_TYPE_BOOL32,
      2,
      {
          {
              1,
          } /* code is param #1 */
      },
      (drsys_sysnum_t *)syscall_UserCallHwndLock_info },
    { { 0, 0 },
      "NtUserCallHwndOpt",
      OK | SYSINFO_SECONDARY_TABLE,
      DRSYS_TYPE_HANDLE,
      2,
      {
          {
              1,
          } /* code is param #1 */
      },
      (drsys_sysnum_t *)syscall_UserCallHwndOpt_info },
    { { 0, 0 },
      "NtUserCallHwndParam",
      OK | SYSINFO_SECONDARY_TABLE,
      SYSARG_TYPE_UINT32,
      3,
      {
          {
              2,
          } /* code is param #2 */
      },
      (drsys_sysnum_t *)syscall_UserCallHwndParam_info },
    { { 0, 0 },
      "NtUserCallHwndParamLock",
      OK | SYSINFO_SECONDARY_TABLE,
      SYSARG_TYPE_UINT32,
      3,
      {
          {
              2,
          } /* code is param #2 */
      },
      (drsys_sysnum_t *)syscall_UserCallHwndParamLock_info },
    { { 0, 0 },
      "NtUserCallMsgFilter",
      UNKNOWN,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(MSG), R | W | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCallNextHookEx",
      UNKNOWN,
      DRSYS_TYPE_SIGNED_INT,
      4,
      {
          { 0, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 1, sizeof(WPARAM), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserCallNoParam",
      OK | SYSINFO_SECONDARY_TABLE,
      DRSYS_TYPE_UNSIGNED_INT,
      1,
      {
          {
              0,
          } /* code is param #0 */
      },
      (drsys_sysnum_t *)syscall_UserCallNoParam_info },
    { { 0, 0 },
      "NtUserCallOneParam",
      OK | SYSINFO_SECONDARY_TABLE,
      DRSYS_TYPE_UNSIGNED_INT,
      2,
      {
          {
              1,
          } /* code is param #1 */
      },
      (drsys_sysnum_t *)syscall_UserCallOneParam_info },
    { { 0, 0 },
      "NtUserCallTwoParam",
      OK | SYSINFO_SECONDARY_TABLE,
      DRSYS_TYPE_UNSIGNED_INT,
      3,
      {
          {
              2,
          } /* code is param #2 */
      },
      (drsys_sysnum_t *)syscall_UserCallTwoParam_info },
    { { 0, 0 },
      "NtUserChangeClipboardChain",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserChangeDisplaySettings",
      OK,
      SYSARG_TYPE_SINT32,
      5,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 1, sizeof(DEVMODEW) /*really var-len*/, R | CT, SYSARG_TYPE_DEVMODEW },
          { 2, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, -5, W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserCheckDesktopByThreadId",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCheckImeHotKey",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCheckMenuItem",
      OK | SYSINFO_RET_MINUS1_FAIL,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCheckWindowThreadDesktop",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserChildWindowFromPointEx",
      OK,
      DRSYS_TYPE_HANDLE,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserClipCursor",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    {
        { 0, 0 },
        "NtUserCloseClipboard",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserCloseDesktop",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HDESK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserCloseWindowStation",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWINSTA), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserConsoleControl",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserConvertMemHandle",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, -1, R | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserCopyAcceleratorTable",
        OK | SYSINFO_RET_ZERO_FAIL,
        SYSARG_TYPE_UINT32,
        3,
        {
            { 0, sizeof(HACCEL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
            /* special-cased b/c ACCEL has padding */
            { 1, -2, SYSARG_NON_MEMARG | SYSARG_SIZE_IN_ELEMENTS, sizeof(ACCEL) },
            { 2, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
        },
        &sysnum_UserCopyAcceleratorTable,
    },
    {
        { 0, 0 },
        "NtUserCountClipboardFormats",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    {
        { 0, 0 },
        "NtUserCreateAcceleratorTable",
        OK,
        DRSYS_TYPE_HANDLE,
        2,
        {
            /* special-cased b/c ACCEL has padding */
            { 0, -1, SYSARG_NON_MEMARG | SYSARG_SIZE_IN_ELEMENTS, sizeof(ACCEL) },
            { 1, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
        },
        &sysnum_UserCreateAcceleratorTable,
    },
    { { 0, 0 },
      "NtUserCreateCaret",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HBITMAP), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCreateDesktop",
      OK,
      DRSYS_TYPE_HANDLE,
      5,
      {
          { 0, sizeof(OBJECT_ATTRIBUTES), R | CT, SYSARG_TYPE_OBJECT_ATTRIBUTES },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(DEVMODEW) /*really var-len*/, R | CT, SYSARG_TYPE_DEVMODEW },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCreateInputContext",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCreateLocalMemHandle",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, -2, W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserCreateWindowEx",
      OK,
      DRSYS_TYPE_HANDLE,
      15,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(LARGE_STRING), R | CT, SYSARG_TYPE_LARGE_STRING },
          { 2, sizeof(LARGE_STRING), R | CT, SYSARG_TYPE_LARGE_STRING },
          { 3, sizeof(LARGE_STRING), R | CT, SYSARG_TYPE_LARGE_STRING },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 6, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 7, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 8, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 9, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 10, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 11, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 12, sizeof(LPVOID), SYSARG_INLINED, DRSYS_TYPE_UNKNOWN },
          { 13, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 14, sizeof(PVOID), SYSARG_INLINED, DRSYS_TYPE_UNKNOWN },
      } },
    { { 0, 0 },
      "NtUserCreateWindowStation",
      OK,
      DRSYS_TYPE_HANDLE,
      7,
      {
          { 0, sizeof(OBJECT_ATTRIBUTES), R | CT, SYSARG_TYPE_OBJECT_ATTRIBUTES },
          { 1, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      },
      &sysnum_UserCreateWindowStation },
    { { 0, 0 },
      "NtUserCtxDisplayIOCtl",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDdeGetQualityOfService",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(SECURITY_QUALITY_OF_SERVICE), W | CT, SYSARG_TYPE_SECURITY_QOS },
      } },
    { { 0, 0 },
      "NtUserDdeInitialize",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDdeSetQualityOfService",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(SECURITY_QUALITY_OF_SERVICE), R | CT, SYSARG_TYPE_SECURITY_QOS },
          { 2, sizeof(SECURITY_QUALITY_OF_SERVICE), W | CT, SYSARG_TYPE_SECURITY_QOS },
      } },
    { { 0, 0 },
      "NtUserDefSetText",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LARGE_STRING), R | CT, SYSARG_TYPE_LARGE_STRING },
      } },
    { { 0, 0 },
      "NtUserDeferWindowPos",
      OK,
      DRSYS_TYPE_HANDLE,
      8,
      {
          { 0, sizeof(HDWP), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 6, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 7, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDeleteMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDestroyAcceleratorTable",
      OK,
      SYSARG_TYPE_BOOL8,
      1,
      {
          { 0, sizeof(HACCEL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserDestroyCursor",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserDestroyInputContext",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDestroyMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserDestroyWindow",
      OK,
      SYSARG_TYPE_BOOL8,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserDisableThreadIme",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDispatchMessage",
      OK,
      DRSYS_TYPE_SIGNED_INT,
      1,
      {
          { 0, sizeof(MSG), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserDragDetect",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(POINT), SYSARG_INLINED, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserDragObject",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(HCURSOR), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserDrawAnimatedRects",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserDrawCaption",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDrawCaptionTemp",
      OK,
      SYSARG_TYPE_BOOL32,
      7,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(HFONT), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 4, sizeof(HICON), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 5, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 6, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserDrawIconEx",
      OK,
      SYSARG_TYPE_BOOL32,
      11,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(HICON), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 4, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 6, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 7, sizeof(HBRUSH), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 8, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 9, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 10, sizeof(DRAWICONEXDATA), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserDrawMenuBarTemp",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 4, sizeof(HFONT), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    {
        { 0, 0 },
        "NtUserEmptyClipboard",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserEnableMenuItem",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserEnableScrollBar",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserEndDeferWindowPosEx",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HDWP), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserEndMenu",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserEndPaint",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(PAINTSTRUCT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserEnumDisplayDevices",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, SYSARG_SIZE_IN_FIELD, W, offsetof(DISPLAY_DEVICEW, cb) },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserEnumDisplayMonitors",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(MONITORENUMPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
          { 3, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserEnumDisplaySettings",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DEVMODEW) /*really var-len*/, W | CT, SYSARG_TYPE_DEVMODEW },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserEvent",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserExcludeUpdateRgn",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserFillWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(HBRUSH), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserFindExistingCursorIcon",
      OK,
      DRSYS_TYPE_HANDLE,
      4,
      {
          { 0, sizeof(HMODULE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HRSRC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserFindWindowEx",
      OK,
      DRSYS_TYPE_HANDLE,
      5,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 3, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserFlashWindowEx",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, SYSARG_SIZE_IN_FIELD, R, offsetof(FLASHWINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetAltTabInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(ALTTABINFO), R | HT, DRSYS_TYPE_STRUCT },
          /* The buffer is ansi or unicode so memarg and non-memarg are special-cased. */
          { 4, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      },
      &sysnum_UserGetAltTabInfo },
    { { 0, 0 },
      "NtUserGetAncestor",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetAppImeLevel",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetAsyncKeyState",
      OK,
      SYSARG_TYPE_SINT16,
      1,
      {
          { 0, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetAtomName",
      OK | SYSINFO_RET_ZERO_FAIL,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(ATOM), SYSARG_INLINED, DRSYS_TYPE_ATOM },
          { 1, sizeof(UNICODE_STRING), W | CT,
            SYSARG_TYPE_UNICODE_STRING_NOLEN /*i#490*/ },
      } },
    { { 0, 0 },
      "NtUserGetCPD",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(GETCPD), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(ULONG_PTR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserGetCaretBlinkTime",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    { { 0, 0 },
      "NtUserGetCaretPos",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(POINT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserGetClassInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      5,
      {
          { 0, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(WNDCLASSEXW), W | CT, SYSARG_TYPE_WNDCLASSEXW },
          {
              3,
              sizeof(PWSTR) /*pointer to existing string (ansi or unicode) is copied*/,
              W,
          },
          { 4, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetClassInfoEx",
      OK,
      SYSARG_TYPE_BOOL32,
      5,
      {
          { 0, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(WNDCLASSEXW), W | CT, SYSARG_TYPE_WNDCLASSEXW },
          {
              3,
              sizeof(PWSTR) /*pointer to existing string (ansi or unicode) is copied*/,
              W,
          },
          { 4, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    /* XXX: Filled in based on ROS and should verify correct. */
    { { 0, 0 },
      "NtUserGetClassLong",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetClassName",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 2, sizeof(UNICODE_STRING), W | CT,
            SYSARG_TYPE_UNICODE_STRING_NOLEN /*i#490*/ },
      } },
    { { 0, 0 },
      "NtUserGetClipCursor",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserGetClipboardData",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(GETCLIPBDATA), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserGetClipboardFormatName",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, -2, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(wchar_t) },
          { 1, RET, W | SYSARG_SIZE_IN_ELEMENTS | SYSARG_SIZE_PLUS_1, sizeof(wchar_t) },
          { 2, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserGetClipboardOwner",
        OK,
        DRSYS_TYPE_HANDLE,
        0,
    },
    {
        { 0, 0 },
        "NtUserGetClipboardSequenceNumber",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    {
        { 0, 0 },
        "NtUserGetClipboardViewer",
        OK,
        DRSYS_TYPE_HANDLE,
        0,
    },
    { { 0, 0 },
      "NtUserGetComboBoxInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, SYSARG_SIZE_IN_FIELD, W, offsetof(COMBOBOXINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetControlBrush",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetControlColor",
      OK,
      DRSYS_TYPE_HANDLE,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetCursorFrameInfo",
      OK,
      DRSYS_TYPE_HANDLE,
      4,
      {
          { 0, sizeof(HCURSOR), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(INT), W | HT, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetCursorInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, SYSARG_SIZE_IN_FIELD, W, offsetof(CURSORINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetDC",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserGetDCEx",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserGetDoubleClickTime",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    {
        { 0, 0 },
        "NtUserGetForegroundWindow",
        OK,
        DRSYS_TYPE_HANDLE,
        0,
    },
    { { 0, 0 },
      "NtUserGetGUIThreadInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, SYSARG_SIZE_IN_FIELD, W, offsetof(GUITHREADINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetGuiResources",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetIconInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ICONINFO), W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(UNICODE_STRING), W | CT,
            SYSARG_TYPE_UNICODE_STRING_NOLEN /*i#490*/ },
          { 3, sizeof(UNICODE_STRING), W | CT, SYSARG_TYPE_UNICODE_STRING },
          { 4, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetIconSize",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(LONG), W | HT, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(LONG), W | HT, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetImeHotKey",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* XXX i#487: 1st param is OUT but shape is unknown. 2nd param seems to be an
     * info class, but not fully known.
     */
    { { 0, 0 },
      "NtUserGetImeInfoEx",
      UNKNOWN | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(PVOID), SYSARG_INLINED, DRSYS_TYPE_UNKNOWN },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetInternalWindowPos",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(POINT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserGetKeyNameText",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 1, -2, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(wchar_t) },
          { 1, RET, W | SYSARG_SIZE_IN_ELEMENTS | SYSARG_SIZE_PLUS_1, sizeof(wchar_t) },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetKeyState",
      OK,
      SYSARG_TYPE_SINT16,
      1,
      {
          { 0, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetKeyboardLayout",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetKeyboardLayoutList",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, -0, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(HKL) },
          { 1, RET, W | SYSARG_NO_WRITE_IF_COUNT_0 | SYSARG_SIZE_IN_ELEMENTS,
            sizeof(HKL) },
      } },
    { { 0, 0 },
      "NtUserGetKeyboardLayoutName",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, KL_NAMELENGTH * sizeof(wchar_t), W | CT, SYSARG_TYPE_CSTRING_WIDE },
      } },
    { { 0, 0 },
      "NtUserGetKeyboardState",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, USER_KEYBOARD_STATE_SIZE, W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetKeyboardType",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetLastInputInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, SYSARG_SIZE_IN_FIELD, W, offsetof(LASTINPUTINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetLayeredWindowAttributes",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(COLORREF), W | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BYTE), W | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetListBoxInfo",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserGetMenuBarInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, SYSARG_SIZE_IN_FIELD, W, offsetof(MENUBARINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetMenuDefaultItem",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetMenuIndex",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserGetMenuItemRect",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserGetMessage",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(MSG), W | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetMinMaxInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          {
              1,
              sizeof(MINMAXINFO),
              W,
          },
      } },
    { { 0, 0 },
      "NtUserGetMonitorInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HMONITOR), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, SYSARG_SIZE_IN_FIELD, W, offsetof(MONITORINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetMouseMovePointsEx",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, -0, R | HT, DRSYS_TYPE_STRUCT },
          { 2, -3, W | SYSARG_SIZE_IN_ELEMENTS, -0 },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetObjectInformation",
      OK | SYSINFO_RET_SMALL_WRITE_LAST,
      SYSARG_TYPE_BOOL32,
      5,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -3, W | HT, DRSYS_TYPE_STRUCT },
          { 2, -4, WI | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserGetOpenClipboardWindow",
        OK,
        DRSYS_TYPE_HANDLE,
        0,
    },
    { { 0, 0 },
      "NtUserGetPriorityClipboardFormat",
      OK,
      SYSARG_TYPE_SINT32,
      2,
      {
          { 0, -1, R | SYSARG_SIZE_IN_ELEMENTS, sizeof(UINT) },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserGetProcessWindowStation",
        OK,
        DRSYS_TYPE_HANDLE,
        0,
    },
    { { 0, 0 },
      "NtUserGetRawInputBuffer",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          /* param #0 has both mem and non-memarg handled in code */
          { 1, sizeof(UINT), SYSARG_NON_MEMARG, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      },
      /*special-cased; XXX: i#485: see handler*/ &sysnum_UserGetRawInputBuffer },
    { { 0, 0 },
      "NtUserGetRawInputData",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(HRAWINPUT), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -3, WI | HT, DRSYS_TYPE_STRUCT },
          { 2, RET, W },
          /*arg 3 is R or W => special-cased*/
          { 3, sizeof(UINT), SYSARG_NON_MEMARG, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      },
      &sysnum_UserGetRawInputData },
    { { 0, 0 },
      "NtUserGetRawInputDeviceInfo",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_NON_MEMARG, DRSYS_TYPE_UNSIGNED_INT },
      },
      &sysnum_UserGetRawInputDeviceInfo },
    { { 0, 0 },
      "NtUserGetRawInputDeviceList",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, -1, WI | SYSARG_SIZE_IN_ELEMENTS, -2 },
          /*really not written when #0!=NULL but harmless; ditto below and probably
             elsewhere in table*/
          { 1, sizeof(UINT), R | W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetRegisteredRawInputDevices",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, -1, WI | SYSARG_SIZE_IN_ELEMENTS, -2 },
          { 1, sizeof(UINT), R | W | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetScrollBarInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, SYSARG_SIZE_IN_FIELD, W, offsetof(SCROLLBARINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetSystemMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetThreadDesktop",
      OK | SYSINFO_REQUIRES_PREFIX,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* XXX i#487: on WOW64 XP and Vista (but not win7) this makes a 0x2xxx syscall
     * instead of invoking NtUserGetThreadDesktop: is it really different?
     */
    {
        { 0, 0 },
        "GetThreadDesktop",
        OK,
        RNTST,
        2,
    },
    { { 0, 0 },
      "NtUserGetThreadState",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserGetTitleBarInfo",
      OK,
      SYSARG_TYPE_BOOL8,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, SYSARG_SIZE_IN_FIELD, W, offsetof(TITLEBARINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserGetUpdateRect",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetUpdateRgn",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserGetWOWClass",
      OK,
      DRSYS_TYPE_POINTER,
      2,
      {
          { 0, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
      } },
    { { 0, 0 },
      "NtUserGetWindowDC",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserGetWindowPlacement",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, SYSARG_SIZE_IN_FIELD, W, offsetof(WINDOWPLACEMENT, length) },
      } },
    { { 0, 0 },
      "NtUserHardErrorControl",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserHideCaret",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserHiliteMenuItem",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserImpersonateDdeClientWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserInitTask",
      OK,
      SYSARG_TYPE_UINT32,
      12,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 7, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 8, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 9, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 10, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 11, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserInitialize",
      OK,
      RNTST,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    /* XXX i#487: not sure whether these are arrays and if so how long they are */
    { { 0, 0 },
      "NtUserInitializeClientPfnArrays",
      UNKNOWN,
      RNTST,
      4,
      {
          { 0, sizeof(PFNCLIENT), R | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(PFNCLIENT), R | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(PFNCLIENTWORKER), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserInternalGetWindowText",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, -2, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(wchar_t) },
          { 1, 0, W | CT, SYSARG_TYPE_CSTRING_WIDE },
          { 2, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserInvalidateRect",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserInvalidateRgn",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserIsClipboardFormatAvailable",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserKillTimer",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT_PTR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserLoadKeyboardLayoutEx",
      OK,
      DRSYS_TYPE_HANDLE,
      7,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 3, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 4, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      },
      &sysnum_UserLoadKeyboardLayoutEx },
    { { 0, 0 },
      "NtUserLockWindowStation",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWINSTA), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserLockWindowUpdate",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    {
        { 0, 0 },
        "NtUserLockWorkStation",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    {
        { 0, 0 },
        "NtUserMNDragLeave",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    { { 0, 0 },
      "NtUserMNDragOver",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMapVirtualKeyEx",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserMenuInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(MENUINFO), SYSARG_NON_MEMARG, DRSYS_TYPE_STRUCT }, /*can be R or W*/
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      },
      &sysnum_UserMenuInfo },
    { { 0, 0 },
      "NtUserMenuItemFromPoint",
      OK,
      SYSARG_TYPE_SINT32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMenuItemInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      5,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 3, sizeof(MENUITEMINFO), SYSARG_NON_MEMARG,
            DRSYS_TYPE_STRUCT }, /*can be R or W*/
          { 4, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      },
      &sysnum_UserMenuItemInfo },
    /* i#1249: NtUserMessageCall has a lot of sub-actions based on both 2nd
     * param and 6th param.  However, enough are identical for our purposes that
     * we handle in code.  That's based on an early examination: if more and
     * more need special handling we may want to switch to a secondary table(s).
     * The return value is an LRESULT.
     */
    { { 0, 0 },
      "NtUserMessageCall",
      OK,
      SYSARG_TYPE_SINT32,
      7,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(WPARAM), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          /* For some WM_ codes this is a pointer: special-cased.
           * XXX: non-memarg client would want secondary table(s)!
           */
          { 3, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          /* 4th param is sometimes IN and sometimes OUT so we special-case it.
           * XXX: however, now that we know the syscall return is
           * LRESULT (i#1752), and this param always seems to be NULL,
           * we may need to revisit what type it really is.
           */
          { 4, sizeof(LRESULT), SYSARG_NON_MEMARG, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      },
      &sysnum_UserMessageCall },
    { { 0, 0 },
      "NtUserMinMaximize",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserModifyUserStartupInfoFlags",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMonitorFromPoint",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(POINT), SYSARG_INLINED, DRSYS_TYPE_STRUCT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMonitorFromRect",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMonitorFromWindow",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserMoveWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserNotifyIMEStatus",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserNotifyProcessCreate",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserNotifyWinEvent",
      OK,
      DRSYS_TYPE_VOID,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserOpenClipboard",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), W | HT, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserOpenDesktop",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(OBJECT_ATTRIBUTES), R | CT, SYSARG_TYPE_OBJECT_ATTRIBUTES },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserOpenInputDesktop",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 2, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserOpenWindowStation",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(OBJECT_ATTRIBUTES), R | CT, SYSARG_TYPE_OBJECT_ATTRIBUTES },
          { 1, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserPaintDesktop",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserPaintMenuBar",
      OK,
      SYSARG_TYPE_UINT32,
      6,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserPeekMessage",
      OK,
      RNTST,
      5,
      {
          { 0, sizeof(MSG), W | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserPostMessage",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(WPARAM), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserPostThreadMessage",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(WPARAM), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserPrintWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* XXX i#487: lots of pointers inside USERCONNECT */
    { { 0, 0 },
      "NtUserProcessConnect",
      UNKNOWN,
      RNTST,
      3,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(USERCONNECT), W | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserQueryInformationThread",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserQueryInputContext",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserQuerySendMessage",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserQueryUserCounters",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserQueryWindow",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRealChildWindowFromPoint",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRealInternalGetMessage",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(MSG), W | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserRealWaitMessageEx",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRedrawWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 2, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterClassExWOW",
      OK | SYSINFO_RET_ZERO_FAIL,
      DRSYS_TYPE_ATOM,
      7,
      {
          { 0, sizeof(WNDCLASSEXW), R | CT, SYSARG_TYPE_WNDCLASSEXW },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 3, sizeof(CLSMENUNAME), R | CT, SYSARG_TYPE_CLSMENUNAME },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(DWORD), R | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterHotKey",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterRawInputDevices",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, -1, R | SYSARG_SIZE_IN_ELEMENTS, -2 },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterTasklist",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterUserApiHook",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRegisterWindowMessage",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
      } },
    { { 0, 0 },
      "NtUserRemoteConnect",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRemoteRedrawRectangle",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserRemoteRedrawScreen",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    {
        { 0, 0 },
        "NtUserRemoteStopScreenUpdates",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    { { 0, 0 },
      "NtUserRemoveMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserRemoveProp",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ATOM), SYSARG_INLINED, DRSYS_TYPE_ATOM },
      } },
    { { 0, 0 },
      "NtUserResolveDesktop",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserResolveDesktopForWOW",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* XXX i#487: not sure whether #2 is in or out */
    { { 0, 0 },
      "NtUserSBGetParms",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(SBDATA), W | HT, DRSYS_TYPE_STRUCT },
          { 3, SYSARG_SIZE_IN_FIELD, W, offsetof(SCROLLINFO, cbSize) },
      } },
    { { 0, 0 },
      "NtUserScrollDC",
      OK,
      SYSARG_TYPE_BOOL32,
      7,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 4, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 5, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 6, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserScrollWindowEx",
      OK,
      SYSARG_TYPE_UINT32,
      8,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 4, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 5, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 6, sizeof(RECT), W | HT, DRSYS_TYPE_STRUCT },
          { 7, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSelectPalette",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HPALETTE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSendInput",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, -0, R | SYSARG_SIZE_IN_ELEMENTS, -2 },
          { 2, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetActiveWindow",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetAppImeLevel",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetCapture",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetClassLong",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(ULONG_PTR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSetClassWord",
      OK,
      SYSARG_TYPE_UINT16,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(WORD), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetClipboardData",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(SETCLIPBDATA), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserSetClipboardViewer",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetConsoleReserveKeys",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetCursor",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HCURSOR), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetCursorContents",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ICONINFO), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserSetCursorIconData",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), R | HT, DRSYS_TYPE_BOOL },
          { 2, sizeof(POINT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(HMODULE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 4, sizeof(HRSRC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 5, sizeof(HRSRC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetDbgTag",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetFocus",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetImeHotKey",
      OK,
      SYSARG_TYPE_UINT32,
      5,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetImeInfoEx",
      OK | SYSINFO_IMM32_DLL,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetImeOwnerWindow",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetInformationProcess",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetInformationThread",
      OK,
      RNTST,
      4,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(USERTHREADINFOCLASS), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, -3, R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(ULONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetInternalWindowPos",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(POINT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserSetKeyboardState",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, USER_KEYBOARD_STATE_SIZE, R | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetLayeredWindowAttributes",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(COLORREF), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BYTE), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetLogonNotifyWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSetMenuContextHelpId",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetMenuDefaultItem",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetMenuFlagRtoL",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetObjectInformation",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -3, R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetParent",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetProcessWindowStation",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWINSTA), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetProp",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(ATOM), SYSARG_INLINED, DRSYS_TYPE_ATOM },
          { 2, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetRipFlags",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetScrollBarInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(SETSCROLLBARINFO), R | HT, DRSYS_TYPE_STRUCT },
      } },
    {
        { 0, 0 },
        "NtUserSetScrollInfo",
        OK,
        SYSARG_TYPE_UINT32,
        4,
        {
            { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
            { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
            /* Special-cased b/c some fields are ignored (i#1299) */
            { 2, SYSARG_SIZE_IN_FIELD, SYSARG_NON_MEMARG, offsetof(SCROLLINFO, cbSize) },
            { 3, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
        },
        &sysnum_UserSetScrollInfo,
    },
    { { 0, 0 },
      "NtUserSetShellWindowEx",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetSysColors",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 1, -0, R | SYSARG_SIZE_IN_ELEMENTS, sizeof(INT) },
          { 2, -0, R | SYSARG_SIZE_IN_ELEMENTS, sizeof(COLORREF) },
          { 3, sizeof(FLONG), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetSystemCursor",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HCURSOR), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetSystemMenu",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetSystemTimer",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT_PTR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(TIMERPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
      } },
    { { 0, 0 },
      "NtUserSetThreadDesktop",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HDESK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSetThreadLayoutHandles",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetThreadState",
      OK,
      SYSARG_TYPE_UINT32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetTimer",
      OK,
      DRSYS_TYPE_UNSIGNED_INT,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT_PTR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(TIMERPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
      } },
    { { 0, 0 },
      "NtUserSetWinEventHook",
      OK,
      DRSYS_TYPE_HANDLE,
      8,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(HMODULE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 3, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 4, sizeof(WINEVENTPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 7, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetWindowFNID",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(WORD), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetWindowLong",
      OK,
      SYSARG_TYPE_SINT32,
      4,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSetWindowPlacement",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, SYSARG_SIZE_IN_FIELD, R, offsetof(WINDOWPLACEMENT, length) },
      } },
    { { 0, 0 },
      "NtUserSetWindowPos",
      OK,
      SYSARG_TYPE_BOOL32,
      7,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 6, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetWindowRgn",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HRGN), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSetWindowStationUser",
      OK,
      SYSARG_TYPE_UINT32,
      4,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetWindowWord",
      OK,
      SYSARG_TYPE_UINT16,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(INT), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(WORD), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserSetWindowsHookAW",
      OK,
      DRSYS_TYPE_HANDLE,
      3,
      {
          { 0, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 1, sizeof(HOOKPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserSetWindowsHookEx",
      OK,
      DRSYS_TYPE_HANDLE,
      6,
      {
          { 0, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(HOOKPROC), SYSARG_INLINED, DRSYS_TYPE_FUNCTION },
          { 5, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserShowCaret",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserShowScrollBar",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserShowWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserShowWindowAsync",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserSoundSentry",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserSwitchDesktop",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HDESK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserSystemParametersInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      4,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, -3, SYSARG_NON_MEMARG, DRSYS_TYPE_STRUCT },
          { 3, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      },
      &sysnum_UserSystemParametersInfo },
    { { 0, 0 },
      "NtUserTestForInteractiveUser",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    /* there is a pointer in MENUINFO but it's user-defined */
    { { 0, 0 },
      "NtUserThunkedMenuInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(MENUINFO), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserThunkedMenuItemInfo",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 3, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
          { 4, 0, R | CT, SYSARG_TYPE_MENUITEMINFOW },
          { 5, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
      } },
    { { 0, 0 },
      "NtUserToUnicodeEx",
      OK,
      SYSARG_TYPE_SINT32,
      7,
      {
          { 0, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, 0x100 * sizeof(BYTE), R | HT, DRSYS_TYPE_UNSIGNED_INT },
          { 3, -4, W | SYSARG_SIZE_IN_ELEMENTS, sizeof(wchar_t) },
          { 4, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 5, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 6, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserTrackMouseEvent",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          /* Memarg and non-memarg are both special-cased */
          {
              0,
          },
      },
      &sysnum_UserTrackMouseEvent },
    { { 0, 0 },
      "NtUserTrackPopupMenuEx",
      OK,
      SYSARG_TYPE_BOOL32,
      6,
      {
          { 0, sizeof(HMENU), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 3, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 4, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 5, SYSARG_SIZE_IN_FIELD, R, offsetof(TPMPARAMS, cbSize) },
      } },
    { { 0, 0 },
      "NtUserTranslateAccelerator",
      OK,
      SYSARG_TYPE_SINT32,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HACCEL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(MSG), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserTranslateMessage",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(MSG), R | HT, DRSYS_TYPE_STRUCT },
          { 1, sizeof(UINT), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserUnhookWinEvent",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWINEVENTHOOK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserUnhookWindowsHookEx",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HHOOK), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserUnloadKeyboardLayout",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    { { 0, 0 },
      "NtUserUnlockWindowStation",
      OK,
      SYSARG_TYPE_BOOL32,
      1,
      {
          { 0, sizeof(HWINSTA), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
      } },
    /* XXX i#487: CLSMENUNAME format is not fully known */
    { { 0, 0 },
      "NtUserUnregisterClass",
      UNKNOWN,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(UNICODE_STRING), R | CT, SYSARG_TYPE_UNICODE_STRING },
          { 1, sizeof(HINSTANCE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(CLSMENUNAME), W | CT, SYSARG_TYPE_CLSMENUNAME },
      } },
    { { 0, 0 },
      "NtUserUnregisterHotKey",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(int), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserUnregisterUserApiHook",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserUpdateInputContext",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserUpdateInstance",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserUpdateLayeredWindow",
      OK,
      SYSARG_TYPE_BOOL32,
      10,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(POINT), R | HT, DRSYS_TYPE_STRUCT },
          { 3, sizeof(SIZE), R | HT, DRSYS_TYPE_STRUCT },
          { 4, sizeof(HDC), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 5, sizeof(POINT), R | HT, DRSYS_TYPE_STRUCT },
          { 6, sizeof(COLORREF), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 7, sizeof(BLENDFUNCTION), R | HT, DRSYS_TYPE_STRUCT },
          { 8, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 9, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserUpdatePerUserSystemParameters",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserUserHandleGrantAccess",
      OK,
      SYSARG_TYPE_BOOL32,
      3,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserValidateHandleSecure",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserValidateRect",
      OK,
      SYSARG_TYPE_BOOL32,
      2,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(RECT), R | HT, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserValidateTimerCallback",
      OK,
      RNTST,
      3,
      {
          { 0, sizeof(HWND), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(WPARAM), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(LPARAM), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserVkKeyScanEx",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(WCHAR), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(HKL), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserWaitForInputIdle",
      OK,
      SYSARG_TYPE_UINT32,
      3,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(BOOL), SYSARG_INLINED, DRSYS_TYPE_BOOL },
      } },
    { { 0, 0 },
      "NtUserWaitForMsgAndEvent",
      OK,
      SYSARG_TYPE_UINT32,
      1,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserWaitMessage",
        OK,
        SYSARG_TYPE_BOOL32,
        0,
    },
    { { 0, 0 },
      "NtUserWin32PoolAllocationStats",
      OK,
      SYSARG_TYPE_UINT32,
      6,
      {
          { 0, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 1, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 2, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 5, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    { { 0, 0 },
      "NtUserWindowFromPhysicalPoint",
      OK,
      DRSYS_TYPE_HANDLE,
      1,
      {
          { 0, sizeof(POINT), SYSARG_INLINED, DRSYS_TYPE_STRUCT },
      } },
    { { 0, 0 },
      "NtUserWindowFromPoint",
      OK,
      DRSYS_TYPE_HANDLE,
      2,
      {
          { 0, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
          { 1, sizeof(LONG), SYSARG_INLINED, DRSYS_TYPE_SIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserYieldTask",
        OK,
        SYSARG_TYPE_UINT32,
        0,
    },
    { { 0, 0 },
      "NtUserUserConnectToServer",
      OK,
      RNTST,
      3,
      {
          { 0, 0, R | CT, SYSARG_TYPE_CSTRING_WIDE },
          { 1, -2, WI },
          { 2, sizeof(ULONG), R | W },
      } },

    /***************************************************/
    /* XXX i#1095: fill in the unknown info, esp Vista+ */
    {
        { 0, 0 },
        "NtUserCallUserpExitWindowsEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserCallUserpRegisterLogonProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, WIN8 },
        "NtUserDeviceEventWorker",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserEndTask",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserLogon",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserRegisterServicesProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },

    /***************************************************/
    /* Added in Vista */
    /* XXX: add min OS version: but we have to distinguish the service packs! */
    /* XXX: NtUserGetProp's return value should match GetProp == HANDLE, but it
     * returns -1 and pointer-looking values in addition to NULL and 2, so I'm
     * not sure what it is -- the type may vary.
     */
    {
        { 0, 0 },
        "NtUserGetProp",
        OK,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { 0, 0 },
        "NtUserAddClipboardFormatListener",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserCheckAccessForIntegrityLevel",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    { { 0, 0 },
      "NtUserCreateDesktopEx",
      UNKNOWN,
      DRSYS_TYPE_HANDLE,
      6,
      {
          /* we figured some out but don't know others */
          { 3, sizeof(DWORD), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
          { 4, sizeof(ACCESS_MASK), SYSARG_INLINED, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { 0, 0 },
        "NtUserDoSoundConnect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserDoSoundDisconnect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserDwmGetDxRgn",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserDwmHintDxUpdate",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserDwmStartRedirection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserDwmStopRedirection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserEndTouchOperation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserFrostCrashedWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserGetUpdatedClipboardFormats",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserGetWindowMinimizeRect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserGetWindowRgnEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserGhostWindowFromHungWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserHungWindowFromGhostWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserInternalGetWindowIcon",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserLogicalToPhysicalPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserOpenThreadDesktop",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserPaintMonitor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserPhysicalToLogicalPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserRegisterErrorReportingDialog",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserRegisterSessionPort",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserRemoveClipboardFormatListener",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserSetMirrorRendering",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, WIN8 },
        "NtUserSetProcessDPIAware",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN81, 0 },
        "NtUserSetProcessDPIAwareness",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { 0, 0 },
        "NtUserSetWindowRgnEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserShowSystemCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserShutdownBlockReasonCreate",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserShutdownBlockReasonDestroy",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserShutdownBlockReasonQuery",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserUnregisterSessionPort",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { 0, 0 },
        "NtUserUpdateWindowTransform",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },

    /***************************************************/
    /* Added in Win7 */
    {
        { WIN7, 0 },
        "NtUserCalculatePopupWindowPosition",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserChangeWindowMessageFilterEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserDesktopHasWatermarkText",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserDisplayConfigGetDeviceInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserDisplayConfigSetDeviceInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetDisplayConfigBufferSizes",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetGestureConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetGestureExtArgs",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetGestureInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetInputLocaleInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetTopLevelWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetTouchInputInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetWindowCompositionAttribute",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetWindowCompositionInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserGetWindowDisplayAffinity",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserHwndQueryRedirectionInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserHwndSetRedirectionInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserInjectGesture",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserIsTopLevelWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserIsTouchWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserMagControl",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserMagGetContextInformation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserMagSetContextInformation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserManageGestureHandlerWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserModifyWindowTouchCapability",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserQueryDisplayConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSendTouchInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSetChildWindowNoActivate",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSetDisplayConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSetGestureConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSetWindowCompositionAttribute",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSetWindowDisplayAffinity",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDestroyLogicalSurfaceBinding",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxBindSwapChain",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxGetSwapChainStats",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxOpenSwapChain",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxQuerySwapChainBindingStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxReleaseSwapChain",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxReportPendingBindingsToDwm",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxSetSwapChainBindingStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmDxSetSwapChainStats",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN7, 0 },
        "NtUserSfmGetLogicalSurfaceBinding",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },

    /***************************************************/
    /* Added in Win8 */
    /* XXX i#1153: fill in details */
    {
        { WIN8, 0 },
        "NtUserAcquireIAMKey",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserAutoPromoteMouseInPointer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserCanBrokerForceForeground",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserCheckProcessForClipboardAccess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserCheckProcessSession",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, WIN8 },
        "NtUserCreateDCompositionHwndTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN81, 0 },
        "NtUserCreateDCompositionHwndTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserDeferWindowPosAndBand",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        10,
    },
    {
        { WIN8, 0 },
        "NtUserDelegateCapturePointers",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserDelegateInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        6,
    },
    {
        { WIN8, 0 },
        "NtUserDestroyDCompositionHwndTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserDisableImmersiveOwner",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserDisableProcessWindowFiltering",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserDiscardPointerFrameMessages",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserDwmGetRemoteSessionOcclusionEvent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserDwmGetRemoteSessionOcclusionState",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserDwmValidateWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserEnableIAMAccess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserEnableMouseInPointer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserEnableMouseInputForCursorSuppression",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserGetAutoRotationState",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserGetCIMSSM",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserGetClipboardAccessToken",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetCurrentInputMessageSource",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserGetDesktopID",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetDisplayAutoRotationPreferencesByProcessId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserGetDisplayAutoRotationPreferences",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, WIN8 },
        "NtUserGetGlobalIMEStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerCursorId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerDevice",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerDeviceCursors",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerDeviceProperties",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerDeviceRects",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerDevices",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerInfoList",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        8,
    },
    {
        { WIN8, 0 },
        "NtUserGetPointerType",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    { { WIN8, 0 },
      "NtUserGetProcessUIContextInformation",
      OK,
      DRSYS_TYPE_BOOL,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          {
              1,
              sizeof(PROCESS_UI_CONTEXT),
              W,
          },
      } },
    {
        { WIN8, 0 },
        "NtUserGetQueueEventStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserGetRawPointerDeviceData",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN8, 0 },
        "NtUserGetTouchValidationStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    { { WIN8, 0 },
      "NtUserGetWindowBand",
      OK,
      DRSYS_TYPE_BOOL,
      2,
      {
          { 0, sizeof(HANDLE), SYSARG_INLINED, DRSYS_TYPE_HANDLE },
          { 1, sizeof(DWORD), W | HT, DRSYS_TYPE_UNSIGNED_INT },
      } },
    {
        { WIN8, 0 },
        "NtUserGetWindowFeedbackSetting",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN8, 0 },
        "NtUserHandleDelegatedInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserHidePointerContactVisualization",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserInitializeTouchInjection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserInjectTouchInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserInternalClipCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserIsMouseInPointerEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserIsMouseInputEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, WIN8 },
        "NtUserLayoutCompleted",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN81, 0 },
        "NtUserLayoutCompleted",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserPromotePointer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserQueryBSDRWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserRegisterBSDRWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserRegisterEdgy",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserRegisterPointerDeviceNotifications",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserRegisterPointerInputTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, 0 },
        "NtUserRegisterTouchHitTestingWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserSendEventMessage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN8, 0 },
        "NtUserSetActiveProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetAutoRotation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetBrokeredForeground",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetCalibrationData",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN8, 0 },
        "NtUserSetDisplayAutoRotationPreferences",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetDisplayMapping",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserSetFallbackForeground",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserSetImmersiveBackgroundWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetProcessRestrictionExemption",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN8, 0 },
        "NtUserSetProcessUIAccessZorder",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserSetThreadInputBlocked",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserSetWindowBand",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN8, WIN8 },
        "NtUserSetWindowCompositionTransition",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        6,
    },
    {
        { WIN81, 0 },
        "NtUserSetWindowCompositionTransition",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        7,
    },
    {
        { WIN8, 0 },
        "NtUserSetWindowFeedbackSetting",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN8, 0 },
        "NtUserSignalRedirectionStartComplete",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN8, 0 },
        "NtUserSlicerControl",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN8, 0 },
        "NtUserUndelegateInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserUpdateDefaultDesktopThumbnail",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN8, 0 },
        "NtUserWaitAvailableMessageEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN8, 0 },
        "NtUserWaitForRedirectionStartComplete",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },

    /***************************************************/
    /* Added in Windows 8.1 */
    /* XXX i#1360: fill in details */
    {
        { WIN81, 0 },
        "NtUserClearForeground",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN81, 0 },
        "NtUserCompositionInputSinkLuidFromPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserEnableTouchPad",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN81, 0 },
        "NtUserGetCursorDims",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN81, 0 },
        "NtUserGetDpiForMonitor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN81, 0 },
        "NtUserGetHimetricScaleFactorFromPixelLocation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN81, 0 },
        "NtUserGetOwnerTransformedMonitorRect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN81, 0 },
        "NtUserGetPhysicalDeviceRect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserGetPointerInputTransform",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN81, 0 },
        "NtUserGetPrecisionTouchPadConfiguration",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN81, 0 },
        "NtUserGetProcessDpiAwareness",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserLinkDpiCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN81, 0 },
        "NtUserLogicalToPerMonitorDPIPhysicalPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserPerMonitorDPIPhysicalToLogicalPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserRegisterTouchPadCapable",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN81, 0 },
        "NtUserReportInertia",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN81, 0 },
        "NtUserSetActivationFilter",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN81, 0 },
        "NtUserSetPrecisionTouchPadConfiguration",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN81, 0 },
        "NtUserTransformPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN81, 0 },
        "NtUserTransformRect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN81, 0 },
        "NtUserUpdateWindowInputSinkHints",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },

    /***************************************************/
    /* Added in Windows 10 */
    /* XXX i#1750: fill in details */
    {
        { WIN10, 0 },
        "NtCreateImplicitCompositionInputSink",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtDCompositionCapturePointer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtDCompositionDuplicateSwapchainHandleToDwm",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtDCompositionEnableDDASupport",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN10, 0 },
        "NtDCompositionEnableMMCSS",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtDCompositionGetAnimationTime",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtDCompositionRegisterVirtualDesktopVisual",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtDCompositionSetChannelCallbackId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtDCompositionSetResourceCallbackId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtDCompositionSetVisualInputSink",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtDCompositionUpdatePointerCapture",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtDesktopCaptureBits",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        8,
    },
    {
        { WIN10, 0 },
        "NtHWCursorUpdatePointer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtQueryCompositionInputIsImplicit",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtQueryCompositionInputQueueAndTransform",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtQueryCompositionInputSinkViewId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtRIMAddInputObserver",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        7,
    },
    {
        { WIN10, 0 },
        "NtRIMGetDevicePreparsedDataLockfree",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtRIMObserveNextInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtRIMRemoveInputObserver",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtRIMUpdateInputObserverRegistration",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtSetCompositionSurfaceAnalogExclusive",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtTokenManagerConfirmOutstandingAnalogToken",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN10, 0 },
        "NtTokenManagerGetAnalogExclusiveSurfaceUpdates",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN10, 0 },
        "NtTokenManagerGetAnalogExclusiveTokenEvent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtTokenManagerOpenSectionAndEvents",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtUserDwmKernelShutdown",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN10, 0 },
        "NtUserDwmKernelStartup",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN10, 0 },
        "NtUserEnableChildWindowDpiMessage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserGetDManipHookInitFunction",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserGetDpiMetrics",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserGetPointerFrameArrivalTimes",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserInitializeInputDeviceInjection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        7,
    },
    {
        { WIN10, 0 },
        "NtUserInitializePointerDeviceInjection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        5,
    },
    {
        { WIN10, 0 },
        "NtUserInjectDeviceInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserInjectKeyboardInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserInjectMouseInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserInjectPointerInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserIsChildWindowDpiMessageEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtUserIsWindowBroadcastingDpiToChildren",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtUserNavigateFocus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserRegisterDManipHook",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtUserRegisterManipulationThread",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN10, 0 },
        "NtUserRegisterShellPTPListener",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserReleaseDwmHitTestWaiters",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        0,
    },
    {
        { WIN10, 0 },
        "NtUserSetActiveProcessForMonitor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserSetCoreWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtUserSetCoreWindowPartner",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserSetFeatureReportResponse",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserSetManipulationInputTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        4,
    },
    {
        { WIN10, 0 },
        "NtUserSetWindowArrangement",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        3,
    },
    {
        { WIN10, 0 },
        "NtUserSetWindowShowState",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        2,
    },
    {
        { WIN10, 0 },
        "NtVisualCaptureBits",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        9,
    },
    /* Added in Windows 10 1511 */
    /* XXX i#1750: fill in details */
    {
        { WIN11, 0 },
        "NtCompositionSetDropTarget",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN11, 0 },
        "NtDCompositionAttachMouseWheelToHwnd",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN11, 0 },
        "NtSetCompositionSurfaceBufferCompositionModeAndOrientation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN11, 0 },
        "NtUserRemoveInjectionDevice",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN11, 0 },
        "NtUserUpdateWindowTrackingInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    /* Added in Windows 10 1607 */
    /* XXX i#1750: fill in details */
    {
        { WIN12, 0 },
        "NtDCompositionProcessChannelBatchBuffer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtQueryCompositionSurfaceHDRMetaData",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtSetCompositionSurfaceDirectFlipState",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtSetCompositionSurfaceHDRMetaData",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserAcquireInteractiveControlBackgroundAccess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserBroadcastThemeChangeEvent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserEnableNonClientDpiScaling",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserGetInteractiveControlDeviceInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserGetInteractiveControlInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserGetProcessDpiAwarenessContext",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserGetQueueStatusReadonly",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserInheritWindowMonitor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserInteractiveControlQueryUsage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserIsNonClientDpiScalingEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSendInteractiveControlHapticsReport",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSetInteractiveControlFocus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSetInteractiveCtrlRotationAngle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSetProcessDpiAwarenessContext",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSetProcessInteractionFlags",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    {
        { WIN12, 0 },
        "NtUserSystemParametersInfoForDpi",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
        1,
    },
    /* Added in Windows 10 1703 */
    /* XXX i#1750: fill in details */
    {
        { WIN13, 0 },
        "NtDCompositionCommitSynchronizationObject",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtDCompositionCreateSharedVisualHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtDCompositionSetChildRootVisual",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITActivateInputProcessing",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITBindInputTypeToMonitors",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITCoreMsgKGetConnectionHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITCoreMsgKOpenConnectionTo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITCoreMsgKSend",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITDeactivateInputProcessing",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITDisableMouseIntercept",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITEnableMouseIntercept",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITSetInputCallbacks",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITSynthesizeMouseInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITSynthesizeMouseWheel",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITSynthesizeTouchInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITUpdateInputGlobals",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtMITWaitForMultipleObjectsEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMAreSiblingDevices",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMDeviceIoControl",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMFreeInputBuffer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMGetDevicePreparsedData",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMGetDeviceProperties",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMGetDevicePropertiesLockfree",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMGetPhysicalDeviceRect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMGetSourceProcessId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMOnPnpNotification",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMOnTimerNotification",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMReadInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMRegisterForInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMSetTestModeStatus",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtRIMUnregisterForInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtSetCompositionSurfaceBufferUsage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserBeginLayoutUpdate",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserCompositionInputSinkViewInstanceIdFromPoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserConfirmResizeCommit",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserEnableResizeLayoutSynchronization",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserEnableWindowGDIScaledDpiMessage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserEnableWindowResizeOptimization",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserFunctionalizeDisplayConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserGetInteractiveCtrlSupportedWaveforms",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserGetResizeDCompositionSynchronizationObject",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserInitializeGenericHidInjection",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserInitializePointerDeviceInjectionEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserInjectGenericHidInput",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserIsResizeLayoutSynchronizationEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserIsWindowGDIScaledDpiMessageEnabled",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserLockCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserProcessInkFeedbackCommand",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN13, 0 },
        "NtUserSetDialogControlDpiChangeBehavior",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    /* Added in Windows 10 1709 */
    /* XXX i#1750: fill in details */
    {
        { WIN14, 0 },
        "NtDWMBindCursorToOutputConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtDWMCommitInputSystemOutputConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtDWMSetCursorOrientation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtDWMSetInputSystemOutputConfig",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtFlipObjectAddPoolBuffer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtFlipObjectCreate",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtFlipObjectOpen",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtFlipObjectRemovePoolBuffer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtMITGetCursorUpdateHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtRIMEnableMonitorMappingForDevice",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserCreateEmptyCursorObject",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserGetActiveProcessesDpis",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserGetCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserGetDpiForCurrentProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserGetHDevName",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserMsgWaitForMultipleObjectsEx",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserReleaseDC",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserSetCursorPos",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserSetDesktopColorTransform",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserSetTargetForResourceBrokering",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserShowCursor",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserStopAndEndInertia",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserWOWCleanup",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN14, 0 },
        "NtUserWindowFromDC",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    /* Added in Windows 10 1803 */
    /* XXX i#1750: fill in details */
    {
        { WIN15, 0 },
        "NtCloseCompositionInputSink",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDCompositionCreateSynchronizationObject",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDCompositionGetBatchId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDCompositionSuspendAnimations",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkGetProcessList",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkRegisterVailProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkSubmitPresentBltToHwQueue",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkVailConnect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkVailDisconnect",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtDxgkVailPromoteCompositionSurface",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtEnableOneCoreTransformMode",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectAddContent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerAcquirePresent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerAdjustUsageReference",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerBeginProcessPresent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerEndProcessPresent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerPostMessage",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectConsumerQueryBufferInfo",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectDisconnectEndpoint",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectQueryBufferAvailableEvent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectQueryEndpointConnected",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectQueryNextMessageToProducer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectReadNextMessageToProducer",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectRemoveContent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtFlipObjectSetContent",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtIsOneCoreTransformMode",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtMITDispatchCompletion",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtMITSetInputDelegationMode",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtMITSetLastInputRecipient",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtMapVisualRelativePoints",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtTokenManagerCreateFlipObjectReturnTokenHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtTokenManagerCreateFlipObjectTokenHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserCreatePalmRejectionDelayZone",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserCreateWindowGroup",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserDeleteWindowGroup",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserDestroyPalmRejectionDelayZone",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserEnableSoftwareCursorForScreenCapture",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserEnableWindowGroupPolicy",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserGetMonitorBrightness",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserGetOemBitmapSize",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserGetSystemDpiForProcess",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserGetWindowGroupId",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserGetWindowProcessHandle",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserLogicalToPhysicalDpiPointForWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserPhysicalToLogicalDpiPointForWindow",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserRequestMoveSizeOperation",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserSetBridgeWindowChild",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserSetDimUndimTransitionTime",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserSetMonitorBrightness",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },
    {
        { WIN15, 0 },
        "NtUserSetWindowGroup",
        UNKNOWN,
        DRSYS_TYPE_UNKNOWN,
    },

};
#define NUM_USER32_SYSCALLS (sizeof(syscall_user32_info) / sizeof(syscall_user32_info[0]))

size_t
num_user32_syscalls(void)
{
    return NUM_USER32_SYSCALLS;
}
